home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / OzTeX3.0update Folder / amslatex / amsart.cls next >
Text File  |  1997-04-01  |  44KB  |  1,234 lines

  1. %%
  2. %% This is file `amsart.cls',
  3. %% generated with the docstrip utility.
  4. %%
  5. %% The original source files were:
  6. %%
  7. %% amsclass.dtx  (with options: `amsart')
  8. %% 
  9. %%% ====================================================================
  10. %%%  @LaTeX-file{
  11. %%%     filename        = "amsclass.dtx",
  12. %%%     version         = "1.2r",
  13. %%%     date            = "1997/03/26",
  14. %%%     time            = "09:49:00 EST",
  15. %%%     checksum        = "12277 3427 13562 126088",
  16. %%%     author          = "American Mathematical Society",
  17. %%%     copyright       = "Copyright (C) 1996 American Mathematical Society,
  18. %%%                        all rights reserved.  Copying of this file is
  19. %%%                        authorized only if either:
  20. %%%                        (1) you make absolutely no changes to your copy,
  21. %%%                        including name; OR
  22. %%%                        (2) if you do make changes, you first rename it
  23. %%%                        to some other name.",
  24. %%%     address         = "American Mathematical Society,
  25. %%%                        Technical Support,
  26. %%%                        Electronic Products and Services,
  27. %%%                        P. O. Box 6248,
  28. %%%                        Providence, RI 02940,
  29. %%%                        USA",
  30. %%%     telephone       = "401-455-4080 or (in the USA and Canada)
  31. %%%                        800-321-4AMS (321-4267)",
  32. %%%     FAX             = "401-331-3842",
  33. %%%     email           = "tech-support@ams.org (Internet)",
  34. %%%     codetable       = "ISO/ASCII",
  35. %%%     keywords        = "latex, amslatex, ams-latex",
  36. %%%     supported       = "yes",
  37. %%%     abstract        = "This is part of the AMS-\LaTeX{} distribution.
  38. %%%                        It produces output conforming to the style
  39. %%%                        conventions of American Mathematical Society
  40. %%%                        publications.  The file \fn{amsclass.dtx} is
  41. %%%                        converted by the installation procedure
  42. %%%                        into three document classes:
  43. %%%                        \cls{amsart}, \cls{amsproc}, and \cls{amsbook},
  44. %%%                        which are intended, respectively,
  45. %%%                        for articles and books containing mathematical
  46. %%%                        research; both class files will also carry this
  47. %%%                        heading, and the particular class should be
  48. %%%                        determined from the external file name.",
  49. %%%     docstring       = "The checksum field above contains a CRC-16
  50. %%%                        checksum as the first value, followed by the
  51. %%%                        equivalent of the standard UNIX wc (word
  52. %%%                        count) utility output of lines, words, and
  53. %%%                        characters.  This is produced by Robert
  54. %%%                        Solovay's checksum utility.",
  55. %%%  }
  56. %%% ====================================================================
  57. \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
  58. [1994/12/01]% LaTeX date must December 1994 or later
  59. \ProvidesClass{amsart}[1997/03/26 v1.2r]
  60. \def\@tempa#1#2\@nil{\edef\@classname{#1}}
  61. \expandafter\@tempa\@currnamestack{}{}{}\@nil
  62. \ifx\@classname\@empty \edef\@classname{\@currname}\fi
  63. \DeclareOption{a4paper}{\paperheight 297mm\paperwidth 210mm
  64.   \textheight 54.5pc }
  65. \DeclareOption{letterpaper}{\paperheight 11in\paperwidth 8.5in }
  66. \DeclareOption{landscape}{\@tempdima\paperheight
  67.   \paperheight\paperwidth \paperwidth\@tempdima}
  68. \DeclareOption{portrait}{}
  69. \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
  70. \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
  71. \DeclareOption{draft}{\overfullrule5\p@ }
  72. \DeclareOption{final}{\overfullrule\z@ }
  73. \def\dateposted#1{\def\@dateposted{\ (#1)}}%
  74. \let\@dateposted\@empty
  75. \DeclareOption{e-only}{%
  76.   \def\volinfo{Volume \currentvolume}%
  77.   \dateposted{Xxxx XX, XXXX}%
  78. }
  79. \newif\if@titlepage
  80. \DeclareOption{titlepage}{\@titlepagetrue}
  81. \DeclareOption{notitlepage}{\@titlepagefalse}
  82. \newif\if@openright
  83. \DeclareOption{openright}{\@openrighttrue}
  84. \DeclareOption{openany}{\@openrightfalse}
  85. \DeclareOption{onecolumn}{\@twocolumnfalse}
  86. \DeclareOption{twocolumn}{\@twocolumntrue}
  87. \DeclareOption{nomath}{}
  88. \DeclareOption{noamsfonts}{}
  89. \DeclareOption{psamsfonts}{%
  90.   \PassOptionsToPackage{psamsfonts}{amsfonts}%
  91.   \PassOptionsToPackage{cmex10}{amsmath}}
  92. \newif\iftagsleft@
  93. \DeclareOption{leqno}{%
  94.   \tagsleft@true \PassOptionsToPackage{leqno}{amsmath}}
  95. \DeclareOption{reqno}{%
  96.   \tagsleft@false \PassOptionsToPackage{reqno}{amsmath}}
  97. \newif\ifctagsplit@
  98. \DeclareOption{centertags}{%
  99.   \ctagsplit@true \PassOptionsToPackage{centertags}{amsmath}}
  100. \DeclareOption{tbtags}{%
  101.   \ctagsplit@false \PassOptionsToPackage{tbtags}{amsmath}}
  102. \DeclareOption{fleqn}{%
  103.   \def\[{\relax
  104.     \ifmmode\@badmath
  105.     \else
  106.       \begin{trivlist}%
  107.       \@beginparpenalty\predisplaypenalty
  108.       \@endparpenalty\postdisplaypenalty
  109.       \item[]\leavevmode
  110.       \hbox to\linewidth\bgroup$\displaystyle
  111.       \hskip\mathindent\bgroup
  112.     \fi}%
  113.   \def\]{\relax
  114.     \ifmmode
  115.       \egroup \m@th$\hfil \egroup
  116.       \end{trivlist}%
  117.     \else \@badmath
  118.     \fi}%
  119.   \renewenvironment{equation}{%
  120.     \@beginparpenalty\predisplaypenalty
  121.     \@endparpenalty\postdisplaypenalty
  122.     \refstepcounter{equation}%
  123.     \@topsep\abovedisplayskip \trivlist
  124.     \item[]\leavevmode
  125.     \hbox to\linewidth\bgroup\hskip\mathindent$\displaystyle
  126.   }{%
  127.     \m@th$\hfil \displaywidth\linewidth \hbox{\@eqnnum}\egroup
  128.     \endtrivlist
  129.   }%
  130.   \renewenvironment{eqnarray}{%
  131.     \stepcounter{equation}\let\@currentlabel\theequation
  132.     \global\@eqnswtrue \global\@eqcnt\z@ \tabskip\mathindent
  133.     \let\\=\@eqncr \abovedisplayskip\topsep
  134.     \ifvmode \advance\abovedisplayskip\partopsep \fi
  135.     \belowdisplayskip\abovedisplayskip
  136.     \belowdisplayshortskip\abovedisplayskip
  137.     \abovedisplayshortskip\abovedisplayskip
  138.     $$\everycr{}\halign to\linewidth\bgroup
  139.       \hskip\@centering
  140.       $\displaystyle\tabskip\z@skip####\m@th$&%
  141.       \@eqnsel \global\@eqcnt\@ne
  142.       \hfil${}####{}\m@th$\hfil&%
  143.       \global\@eqcnt\tw@
  144.       $\displaystyle ####\m@th$\hfil\tabskip\@centering&%
  145.       \global\@eqcnt\thr@@
  146.       \hbox to \z@\bgroup\hss####\egroup\tabskip\z@skip\cr
  147.     }{%
  148.       \@@eqncr \egroup \global\advance\c@equation\m@ne$$%
  149.       \global\@ignoretrue
  150.     }%
  151.   \newdimen\mathindent \mathindent\leftmargini
  152. }
  153. \newcommand{\@mainsize}{10}
  154. \newcommand{\@ptsize}{0}
  155. \newcommand{\larger}[1][1]{%
  156.   \count@\@currsizeindex \advance\count@#1\relax
  157.   \ifnum\count@<\z@ \count@\z@ \else\ifnum\count@>12 \count@12 \fi\fi
  158.   \ifcase\count@
  159.     \Tiny\or\Tiny\or\tiny\or\SMALL\or\Small\or\small
  160.     \or\normalsize
  161.     \or\large\or\Large\or\LARGE\or\huge\or\Huge\else\Huge
  162.   \fi
  163. }
  164. \newcommand{\smaller}[1][1]{\larger[-#1]}
  165. \def\@adjustvertspacing{%
  166.   \bigskipamount.7\baselineskip plus.7\baselineskip
  167.   \medskipamount\bigskipamount \divide\medskipamount\tw@
  168.   \smallskipamount\medskipamount \divide\smallskipamount\tw@
  169.   \abovedisplayskip\medskipamount
  170.   \belowdisplayskip \abovedisplayskip
  171.   \abovedisplayshortskip\abovedisplayskip
  172.   \advance\abovedisplayshortskip-1\abovedisplayskip
  173.   \belowdisplayshortskip\abovedisplayshortskip
  174.   \advance\belowdisplayshortskip 1\smallskipamount
  175.   \jot\baselineskip \divide\jot 4 \relax
  176. }
  177. \renewcommand\normalsize{\@xsetfontsize\normalsize 6%
  178.   \@adjustvertspacing \let\@listi\@listI}
  179. \newcommand\Tiny{\@xsetfontsize\Tiny 1}
  180. \newcommand\tiny{\@xsetfontsize\tiny 2}
  181. \newcommand\SMALL{\@xsetfontsize\SMALL 3}
  182. \newcommand\Small{\@xsetfontsize\Small 4%
  183.   \@adjustvertspacing
  184.   \def\@listi{\topsep\smallskipamount \parsep\z@skip \itemsep\z@skip}}
  185. \newcommand\small{\@xsetfontsize\small 5\@adjustvertspacing}
  186. \def\footnotesize{\Small}
  187. \def\scriptsize{\SMALL}
  188. \newcommand\large{\@xsetfontsize\large 7\@adjustvertspacing}
  189. \newcommand\Large{\@xsetfontsize\Large 8\@adjustvertspacing}
  190. \newcommand\LARGE{\@xsetfontsize\LARGE 9}
  191. \newcommand\huge{\@xsetfontsize\huge{10}}
  192. \newcommand\Huge{\@xsetfontsize\Huge{11}}
  193. \def\@xsetfontsize#1#2{%
  194.   \chardef\@currsizeindex#2\relax
  195.   \edef\@tempa{\@nx\@setfontsize\@nx#1%
  196.     \@xp\ifcase\@xp\@currsizeindex\@typesizes
  197.       \else{99}{99}\fi}%
  198.   \@tempa
  199. }
  200. \chardef\@currsizeindex=6
  201. \widowpenalty=10000
  202. \clubpenalty=10000
  203. \brokenpenalty=10000
  204. \newdimen\linespacing
  205. \lineskip=1pt \lineskiplimit=1pt
  206. \normallineskip=1pt \normallineskiplimit=1pt
  207. \let\baselinestretch=\@empty
  208. \headheight=5pt \headsep=14pt
  209. \footskip=12pt
  210. \textheight=50.5pc \topskip=10pt
  211. \textwidth=30pc
  212. \columnsep=10pt \columnseprule=0pt
  213. \marginparwidth=90pt
  214. \marginparsep=11pt
  215. \marginparpush=5pt
  216. \AtBeginDocument{\settoheight{\footnotesep}{\footnotesize M$^1$}}
  217. \skip\footins=7pt plus11pt
  218. \skip\@mpfootins=\skip\footins
  219. \fboxsep=3pt \fboxrule=.4pt
  220. \arrayrulewidth=.4pt    \doublerulesep=2pt
  221. \labelsep=5pt           \arraycolsep=\labelsep
  222. \tabcolsep=\labelsep    \tabbingsep=\labelsep
  223. \floatsep=15pt plus 12pt    \dblfloatsep=15pt plus 12pt
  224. \textfloatsep=\floatsep  \dbltextfloatsep=15pt plus 12pt
  225. \intextsep=\floatsep
  226. \@fptop=0pt plus1fil     \@dblfptop=0pt plus1fil
  227. \@fpbot=0pt plus1fil     \@dblfpbot=0pt plus1fil
  228. \@fpsep=8pt plus2fil     \@dblfpsep=8pt plus2fil\relax
  229. \parskip=0pt \relax
  230. \newdimen\normalparindent
  231. \normalparindent=12pt
  232. \parindent=\normalparindent
  233. \partopsep=0pt \relax \parsep=0pt \relax \itemsep=0pt \relax
  234. \@lowpenalty=51         \@medpenalty=151        \@highpenalty=301
  235. \@beginparpenalty=-\@lowpenalty
  236. \@endparpenalty=-\@lowpenalty
  237. \@itempenalty=-\@lowpenalty
  238. \DeclareOption{10pt}{\def\@mainsize{10}\def\@ptsize{0}%
  239.   \def\@typesizes{%
  240.     \or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}%
  241.     \or{10}{12}% normalsize
  242.     \or{\@xipt}{13}\or{\@xiipt}{14}\or{\@xivpt}{17}%
  243.     \or{\@xviipt}{20}\or{\@xxpt}{24}}%
  244.   \normalsize \linespacing=\baselineskip
  245. }
  246. \DeclareOption{11pt}{\def\@mainsize{11}\def\@ptsize{1}%
  247.   \def\@typesizes{%
  248.     \or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}%
  249.     \or{\@xipt}{13}% normalsize
  250.     \or{\@xiipt}{14}\or{\@xivpt}{17}\or{\@xviipt}{20}%
  251.     \or{\@xxpt}{24}\or{\@xxvpt}{30}}%
  252.   \normalsize \linespacing=\baselineskip
  253. }
  254. \DeclareOption{12pt}{\def\@mainsize{12}\def\@ptsize{2}%
  255.   \def\@typesizes{%
  256.     \or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
  257.     \or{\@xiipt}{14}% normalsize
  258.     \or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
  259.     \or{\@xxvpt}{30}\or{\@xxvpt}{30}}%
  260.   \normalsize \linespacing=\baselineskip
  261. }
  262. \DeclareOption{8pt}{\def\@mainsize{8}\def\@ptsize{8}%
  263.   \def\@typesizes{%
  264.     \or{5}{6}\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}%
  265.     \or{8}{10}% normalsize
  266.     \or{9}{11}\or{10}{12}\or{\@xipt}{13}%
  267.     \or{\@xiipt}{14}\or{\@xivpt}{17}}%
  268.   \normalsize \linespacing=\baselineskip
  269. }
  270. \DeclareOption{9pt}{\def\@mainsize{9}\def\@ptsize{9}%
  271.   \def\@typesizes{%
  272.     \or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}%
  273.     \or{9}{11}% normalsize
  274.     \or{10}{12}\or{\@xipt}{13}\or{\@xiipt}{14}%
  275.     \or{\@xivpt}{17}\or{\@xviipt}{20}}%
  276.   \normalsize \linespacing=\baselineskip
  277. }
  278. \def\ps@empty{\let\@mkboth\@gobbletwo
  279.   \let\@oddhead\@empty \let\@evenhead\@empty
  280.   \let\@oddfoot\@empty \let\@evenfoot\@empty
  281.   \global\topskip\normaltopskip}
  282. \def\ps@plain{\ps@empty
  283.   \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil}%
  284.   \let\@evenfoot\@oddfoot}
  285. \def\ps@headings{\ps@empty
  286.   \def\@evenhead{\normalfont\scriptsize
  287.       \rlap{\thepage}\hfil \leftmark{}{}\hfil}%
  288.   \def\@oddhead{\normalfont\scriptsize \hfil
  289.       \rightmark{}{}\hfil \llap{\thepage}}%
  290.   \let\@mkboth\markboth
  291. }
  292. \let\sectionname\@empty
  293. \let\subsectionname\@empty
  294. \let\subsubsectionname\@empty
  295. \let\paragraphname\@empty
  296. \let\subparagraphname\@empty
  297. \def\leftmark{\expandafter\@firstoftwo\topmark{}{}}
  298. \def\rightmark{\expandafter\@secondoftwo\botmark{}{}}
  299. \def\ps@firstpage{\ps@plain
  300.   \def\@oddfoot{\normalfont\scriptsize \hfil\thepage\hfil
  301.      \global\topskip\normaltopskip}%
  302.   \let\@evenfoot\@oddfoot
  303.   \def\@oddhead{\@serieslogo\hss}%
  304.   \let\@evenhead\@oddhead % in case an article starts on a left-hand page
  305. }
  306. \long\def\@nilgobble#1\@nil{}
  307. \def\markboth#1#2{%
  308.   \begingroup
  309.     \@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
  310.     \mark{\the\@temptokena}%
  311.   \endgroup
  312.   \if@nobreak\ifvmode\nobreak\fi\fi}
  313. \def\ps@myheadings{\ps@headings \let\@mkboth\@gobbletwo}
  314. \newskip\normaltopskip
  315. \normaltopskip=10pt \relax
  316. \let\sectionmark\@gobble
  317. \let\subsectionmark\@gobble
  318. \let\subsubsectionmark\@gobble
  319. \let\paragraphmark\@gobble
  320.  
  321. \DeclareOption{makeidx}{}
  322. \input{amsgen.sty}
  323. \ExecuteOptions{leqno,centertags,letterpaper,portrait,%
  324.   10pt,twoside,onecolumn,final}
  325. \ProcessOptions\relax
  326. \if@compatibility
  327.   \def\@tempa{\RequirePackage{amstex}\relax}
  328. \else
  329.   \@ifclasswith{\@classname}{nomath}{%
  330.     \let\@tempa\relax
  331.   }{%
  332.     \def\@tempa{\RequirePackage{amsmath}\relax}%
  333.   }%
  334. \fi
  335. \@tempa % load amstex.sty or amsmath.sty
  336. \providecommand\numberwithin[2]{%
  337.   \@ifundefined{c@#1}{\@nocounterr{#1}}{%
  338.     \@ifundefined{c@#2}{\@nocounterr{#2}}{%
  339.     \@addtoreset{#1}{#2}%
  340.     \toks@\@xp\@xp\@xp{\csname the#1\endcsname}%
  341.     \@xp\xdef\csname the#1\endcsname
  342.       {\@xp\@nx\csname the#2\endcsname
  343.        .\the\toks@}}}}
  344. \if@compatibility
  345. \else
  346.   \@ifclasswith{\@classname}{noamsfonts}{%
  347.     % amsfonts package is not wanted
  348.   }{%
  349.     % amsfonts package IS wanted; test whether a recent enough version
  350.     % seems to be installed
  351.     \begingroup \fontencoding{U}\fontfamily{msa}\try@load@fontshape\endgroup
  352.     \global\@xp\let\csname U+msa\endcsname\relax % reset
  353.     \@ifundefined{U/msa/m/n}{%
  354.       \ClassError{\@classname}{%
  355.   Package `amsfonts' not installed, or version too old?\MessageBreak
  356.   Unable to get font info for the `msam' fonts in the expected form%
  357.       }{%
  358.   The amsfonts package will not be loaded, to avoid probable\MessageBreak
  359.   incompatibility problems. You can (a) use the `noamsfonts'
  360.       documentclass\MessageBreak
  361.   option next time, or (b) check that the amsfonts package is
  362.       installed\MessageBreak
  363.   correctly, and is not too old to be compatible.%
  364.       }%
  365.     }{%
  366.       \RequirePackage{amsfonts}[1995/01/01]\relax
  367.     }%
  368.   }
  369. \fi % end yesamsfonts branch
  370. \newcommand{\uppercasenonmath}[1]{\toks@\@emptytoks
  371.   \@xp\@skipmath\@xp\@empty#1$$%
  372.   \edef#1{\@nx\@upprep\the\toks@}%
  373. }
  374. \newcommand{\@upprep}{%
  375.   \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
  376.   \upchars@}
  377. \newcommand{\upchars@}{%
  378.   \def\ss{SS}\def\i{I}\def\j{J}\def\ae{\AE}\def\oe{\OE}%
  379.   \def\o{\O}\def\aa{\AA}\def\l{\L}\def\Mc{M{\scshape c}}}
  380. \newcommand{\@skipmath}{}
  381. \long\def\@skipmath#1$#2${%
  382.   \@xskipmath#1\(\)%
  383.   \@ifnotempty{#2}{\toks@\@xp{\the\toks@$#2$}\@skipmath\@empty}}%
  384. \newcommand{\@xskipmath}{}
  385. \long\def\@xskipmath#1\(#2\){%
  386.   \uppercase{\toks@\@xp\@xp\@xp{\@xp\the\@xp\toks@#1}}%
  387.   \@ifnotempty{#2}{\toks@\@xp{\the\toks@\(#2\)}\@xskipmath\@empty}}%
  388. \newcommand{\today}{%
  389.   \relax\ifcase\month\or
  390.   January\or February\or March\or April\or May\or June\or
  391.   July\or August\or September\or October\or November\or December\fi
  392.   \space\number\day, \number\year}
  393. \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
  394. \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
  395. \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
  396. \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
  397. \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
  398. \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
  399. \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
  400. \renewcommand*{\title}[2][]{\gdef\shorttitle{#1}\gdef\@title{#2}}
  401. \edef\title{\@nx\@dblarg
  402.   \@xp\@nx\csname\string\title\endcsname}
  403. \renewcommand{\author}[2][]{%
  404.   \ifx\@empty\authors
  405.     \gdef\shortauthors{#1}\gdef\authors{#2}%
  406.   \else
  407.     \g@addto@macro\shortauthors{\and#1}%
  408.     \g@addto@macro\authors{\and#2}%
  409.     \g@addto@macro\addresses{\author{}}%
  410.   \fi
  411. }
  412. \edef\author{\@nx\@dblarg
  413.   \@xp\@nx\csname\string\author\endcsname}
  414. \let\shortauthors\@empty   \let\authors\@empty
  415. \let\addresses\@empty      \let\thankses\@empty
  416. \newcommand{\address}[2][]{\g@addto@macro\addresses{\address{#1}{#2}}}
  417. \newcommand{\curraddr}[2][]{\g@addto@macro\addresses{\curraddr{#1}{#2}}}
  418. \newcommand{\email}[2][]{\g@addto@macro\addresses{\email{#1}{#2}}}
  419. \newcommand{\urladdr}[2][]{\g@addto@macro\addresses{\urladdr{#1}{#2}}}
  420. \renewcommand{\thanks}[1]{\g@addto@macro\thankses{\thanks{#1}}}
  421. \def\enddoc@text{\ifx\@empty\@translators \else\@settranslators\fi
  422.   \ifx\@empty\addresses \else\@setaddresses\fi}
  423. \AtEndDocument{\enddoc@text}
  424. \def\@setaddresses{\par
  425.   \nobreak \begingroup
  426. \footnotesize
  427.   \def\author##1{\nobreak\addvspace\bigskipamount}%
  428.   \def\\{\unskip, \ignorespaces}%
  429.   \interlinepenalty\@M
  430.   \def\address##1##2{\begingroup
  431.     \par\addvspace\bigskipamount\indent
  432.     \@ifnotempty{##1}{(\ignorespaces##1\unskip) }%
  433.     {\scshape\ignorespaces##2}\par\endgroup}%
  434.   \def\curraddr##1##2{\begingroup
  435.     \@ifnotempty{##2}{\nobreak\indent{\itshape Current address}%
  436.       \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
  437.       ##2\par\endgroup}}%
  438.   \def\email##1##2{\begingroup
  439.     \@ifnotempty{##2}{\nobreak\indent{\itshape E-mail address}%
  440.       \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
  441.       \ttfamily##2\par\endgroup}}%
  442.   \def\urladdr##1##2{\begingroup
  443.     \@ifnotempty{##2}{\nobreak\indent{\itshape URL}%
  444.       \@ifnotempty{##1}{, \ignorespaces##1\unskip}\/:\space
  445.       \ttfamily##2\par\endgroup}}%
  446.   \addresses
  447.   \endgroup
  448. }
  449. \let\@date\@empty
  450. \def\dedicatory#1{\def\@dedicatory{#1}}
  451. \let\@dedicatory=\@empty
  452. \def\keywords#1{\def\@keywords{#1}}
  453. \let\@keywords=\@empty
  454. \def\subjclass#1{\def\@subjclass{#1}}
  455. \let\@subjclass=\@empty
  456. \def\commby#1{\def\@commby{(Communicated by #1)}}
  457. \let\@commby=\@empty
  458. \def\translator#1{%
  459.   \ifx\@empty\@translators \def\@translators{#1}%
  460.   \else\g@addto@macro\@translators{\and#1}\fi}
  461. \let\@translators=\@empty
  462. \def\@settranslators{\par\begingroup
  463.   \addvspace{6\p@\@plus9\p@}%
  464.   \hbox to\columnwidth{\hss\normalfont\normalsize
  465.     Translated by %
  466.     \andify\@translators \uppercasenonmath\@translators
  467.     \@translators}
  468.   \endgroup
  469. }
  470. \newcommand{\xandlist}[4]{\@andlista{{#1}{#2}{#3}}#4\and\and}
  471. \def\@andlista#1#2\and#3\and{\@andlistc{#2}\@ifnotempty{#3}{%
  472.   \@andlistb#1{#3}}}
  473. \def\@andlistb#1#2#3#4#5\and{%
  474.   \@ifempty{#5}{%
  475.     \@andlistc{#2#4}%
  476.   }{%
  477.     \@andlistc{#1#4}\@andlistb{#1}{#3}{#3}{#5}%
  478.   }}
  479. \let\@andlistc\@iden
  480. \newcommand{\nxandlist}[4]{%
  481.   \def\@andlistc##1{\toks@\@xp{\the\toks@##1}}%
  482.   \toks@{\toks@\@emptytoks \@andlista{{#1}{#2}{#3}}}%
  483.   \the\@xp\toks@#4\and\and
  484.   \edef#4{\the\toks@}%
  485.   \let\@andlistc\@iden}
  486. \newcommand{\andify}{%
  487.   \nxandlist{\unskip, }{\unskip{} and~}{\unskip, and~}}
  488. \def\and{\unskip{ }and \ignorespaces}
  489. \def\maketitle{\par
  490.   \@topnum\z@ % this prevents figures from falling at the top of page 1
  491.   \@setcopyright
  492.   \uppercasenonmath\shorttitle
  493.   \ifx\@empty\shortauthors \let\shortauthors\shorttitle
  494.   \else \andify\shortauthors \uppercasenonmath\shortauthors \fi
  495.   \@maketitle@hook
  496.   \begingroup
  497.   \@maketitle
  498.   \toks@\@xp{\shortauthors}\@temptokena\@xp{\shorttitle}%
  499.   \edef\@tempa{\@nx\markboth{\the\toks@}{\the\@temptokena}}\@tempa
  500.   \endgroup
  501.   \thispagestyle{firstpage}% this sets first page specifications
  502.   \c@footnote\z@
  503.   \def\do##1{\let##1\relax}%
  504.   \do\maketitle \do\@maketitle \do\title \do\@xtitle \do\@title
  505.   \do\author \do\@xauthor \do\address \do\@xaddress
  506.   \do\email \do\@xemail \do\curraddr \do\@xcurraddr
  507.   \do\commby \do\@commby
  508.   \do\dedicatory \do\@dedicatory \do\thanks \do\thankses
  509.   \do\keywords \do\@keywords \do\subjclass \do\@subjclass
  510. }
  511. \def\@maketitle@hook{\global\let\@maketitle@hook\@empty}
  512. \def\@maketitle{%
  513.   \normalfont\normalsize
  514.   \let\@makefnmark\relax  \let\@thefnmark\relax
  515.   \ifx\@empty\@date\else \@footnotetext{\@setdate}\fi
  516.   \ifx\@empty\@subjclass\else \@footnotetext{\@setsubjclass}\fi
  517.   \ifx\@empty\@keywords\else \@footnotetext{\@setkeywords}\fi
  518.   \ifx\@empty\thankses\else \@footnotetext{%
  519.     \def\par{\let\par\@par}\@setthanks}\fi
  520.   \@mkboth{\@nx\shortauthors}{\@nx\shorttitle}%
  521.   \global\topskip42\p@\relax % 5.5pc   "   "   "     "     "
  522.   \@settitle
  523.   \ifx\@empty\authors \else \@setauthors \fi
  524.   \ifx\@empty\@dedicatory
  525.   \else
  526.     \baselineskip18\p@
  527.     \vtop{\centering{\footnotesize\itshape\@dedicatory\@@par}%
  528.       \global\dimen@i\prevdepth}\prevdepth\dimen@i
  529.   \fi
  530.   \@setabstract
  531.   \normalsize
  532.   \if@titlepage
  533.     \newpage
  534.   \else
  535.     \dimen@34\p@ \advance\dimen@-\baselineskip
  536.     \vskip\dimen@\relax
  537.   \fi
  538. } % end \@maketitle
  539. \AtBeginDocument{%
  540.   \@ifundefined{publname}{%
  541.     \let\publname\@empty
  542.     \let\@serieslogo\@empty
  543.   }{%
  544.     \def\@serieslogo{%
  545.       \vbox to\headheight{%
  546.         \parindent\z@ \fontsize{6}{7\p@}\selectfont
  547.         \noindent\publname\newline
  548.         \volinfo, \pageinfo \@dateposted\newline \@PII\endgraf
  549.         \vss
  550.       }%
  551.     }%
  552.   }%
  553. }
  554. \AtBeginDocument{%
  555.   \@ifundefined{volinfo}{%
  556.     \def\volinfo{%
  557.       Volume \currentvolume, Number \number0\currentissue,
  558.       \currentmonth\ \currentyear
  559.     }%
  560.   }{}%
  561. }
  562. \def\issueinfo#1#2#3#4{\def\currentvolume{#1}\def\currentissue{#2}%
  563.   \def\currentmonth{#3}\def\currentyear{#4}}
  564. \issueinfo{00}% volume number
  565.   {0}%        % issue number
  566.   {Xxxx}%     % month
  567.   {XXXX}%     % year
  568. \def\copyrightinfo#1#2{\def\copyrightyear{#1}\def\copyrightholder{#2}}
  569. \copyrightinfo{0000}{(copyright holder)}
  570. \def\pagespan#1#2{\setcounter{page}{#1}%
  571.   \ifnum\c@page<\z@ \pagenumbering{roman}\setcounter{page}{-#1}\fi
  572.   \def\start@page{#1}\def\end@page{#2}}
  573. \pagespan{000}{000}
  574. \@ifundefined{pageinfo}{%
  575.   \def\pageinfo{%
  576.     \ifnum\start@page=\z@
  577.       Pages 000--000
  578.     \else
  579.       \ifx\start@page\end@page
  580.         Page \start@page
  581.       \else
  582.         Pages \start@page--\end@page
  583.       \fi
  584.     \fi}%
  585. }{}
  586. \@ifundefined{ISSN}{\def\ISSN{0000-0000}}{}
  587. \newcommand\PII[1]{\def\@PII{#1}}
  588. \PII{S \ISSN(XX)0000-0}
  589. \newinsert\copyins
  590. \skip\copyins=1.5pc
  591. \count\copyins=1000 % magnification factor, 1000 = 100%
  592. \dimen\copyins=.5\textheight % maximum allowed per page
  593. \def\@setcopyright{%
  594.   \ifx\@empty\@serieslogo
  595.   \else\ifx\@empty\copyrightyear
  596.   \else
  597.     \insert\copyins{\hsize\textwidth
  598.       \parfillskip\z@ \leftskip\z@\@plus.9\textwidth
  599.       \fontsize{6}{7\p@}\normalfont\upshape
  600.       \everypar{}%
  601.       \vskip-\skip\copyins \nointerlineskip
  602.       \noindent\vrule\@width\z@\@height\skip\copyins
  603.       \copyright\copyrightyear\ \copyrightholder
  604.       \par
  605.       \kern\z@}%
  606.   \fi\fi
  607. }
  608. \def\@combinefloats{%
  609.   \ifx \@toplist\@empty \else \@cflt \fi
  610.   \ifx \@botlist\@empty \else \@cflb \fi
  611.   \ifvoid\copyins \else \@cflci \fi
  612. }
  613. \def\@cflci{%
  614.   \if\if@twocolumn \if@firstcolumn F\else T\fi\else T\fi T%
  615.       \setbox\@outputbox\vbox{%
  616.         \unvbox\@outputbox
  617.         \vskip\skip\copyins
  618.         \hbox to\columnwidth{%
  619.           \hss\vbox to\z@{\vss\unvbox\copyins}}}%
  620.   \fi
  621. }
  622. \newcommand{\abstractname}{Abstract}
  623. \newcommand{\keywordsname}{Key words and phrases}
  624. \newcommand{\subjclassname}{\textup{1991} Mathematics Subject
  625.      Classification}
  626. \def\@tempb{amsart}
  627. \ifx\@classname\@tempb
  628.   \newcommand{\datename}{\textit{Date}:}
  629. \else
  630.   \newcommand{\datename}{Received by the editors}
  631. \fi
  632. \def\@settitle{\begin{center}%
  633.   \baselineskip14\p@\relax
  634.     \bfseries
  635. \uppercasenonmath\@title
  636.   \@title
  637.   \end{center}%
  638. }
  639. \def\@setauthors{%
  640.   \begingroup
  641.   \trivlist
  642.   \centering\footnotesize \@topsep30\p@\relax
  643.   \advance\@topsep by -\baselineskip
  644.   \item\relax
  645.   \andify\authors
  646. \uppercasenonmath\authors
  647.   \authors
  648.   \endtrivlist
  649.   \endgroup
  650. }
  651. \def\@setdate{\datename\ \@date\@addpunct.}
  652. \def\@setsubjclass{%
  653.   {\itshape\subjclassname.}\enspace\@subjclass\@addpunct.}
  654. \def\@setkeywords{%
  655.   {\itshape \keywordsname.}\enspace \@keywords\@addpunct.}
  656. \def\@setthanks{\def\thanks##1{\par##1\@addpunct.}\thankses}
  657. \newbox\abstractbox
  658. \newenvironment{abstract}{%
  659.   \ifx\maketitle\relax
  660.     \ClassWarning{\@classname}{Abstract should precede
  661.       \protect\maketitle\space in AMS documentclasses; reported}%
  662.   \fi
  663.   \global\setbox\abstractbox=\vtop \bgroup
  664.   \normalfont\Small
  665.   \Small
  666.   \list{}{\labelwidth\z@
  667.     \leftmargin3pc \rightmargin\leftmargin
  668.     \listparindent\normalparindent \itemindent\z@
  669.     \parsep\z@ \@plus\p@
  670.     \let\fullwidthdisplay\relax
  671.     }%
  672.   \item[\hskip\labelsep\scshape\abstractname.]%
  673. }{%
  674.   \endlist\egroup
  675.   \ifx\@setabstract\relax \@setabstracta \fi
  676. }
  677. \def\@setabstract{\@setabstracta \global\let\@setabstract\relax}
  678. \def\@setabstracta{%
  679.   \ifvoid\abstractbox
  680.   \else
  681.     \skip@20\p@ \advance\skip@-\lastskip
  682.     \advance\skip@-\baselineskip \vskip\skip@
  683.     \box\abstractbox
  684.     \prevdepth\z@ % because \abstractbox is a vtop
  685.   \fi
  686. }
  687. \def\titlepage{%
  688.   \clearpage
  689.   \thispagestyle{empty}\setcounter{page}{0}}
  690. \def\endtitlepage{\newpage}
  691. \def\labelenumi{\theenumi.}
  692. \def\theenumi{\@arabic\c@enumi}
  693. \def\labelenumii{(\theenumii)}
  694. \def\theenumii{\@alph\c@enumii}
  695. \def\p@enumii{\theenumi}
  696. \def\labelenumiii{(\theenumiii)}
  697. \def\theenumiii{\@roman\c@enumiii}
  698. \def\p@enumiii{\theenumi(\theenumii)}
  699. \def\labelenumiv{(\theenumiv)}
  700. \def\theenumiv{\@Alph\c@enumiv}
  701. \def\p@enumiv{\p@enumiii\theenumiii}
  702. \def\labelitemi{$\m@th\bullet$}
  703. \def\labelitemii{\bfseries --}% \upshape already done by \itemize
  704. \def\labelitemiii{$\m@th\ast$}
  705. \def\labelitemiv{$\m@th\cdot$}
  706. \newenvironment{verse}{\let\\\@centercr
  707.   \list{}{\itemsep\z@ \itemindent -1.5em\listparindent\itemindent
  708.   \rightmargin\leftmargin \advance\leftmargin 1.5em}\item[]%
  709. }{%
  710.   \endlist
  711. }
  712. \let\endverse=\endlist % for efficiency
  713. \newenvironment{quotation}{\list{}{%
  714.     \leftmargin3pc \listparindent\normalparindent
  715.     \itemindent\z@
  716.     \rightmargin\leftmargin \parsep\z@ \@plus\p@}%
  717.   \item[]%
  718. }{%
  719.   \endlist
  720. }
  721. \let\endquotation=\endlist % for efficiency
  722. \newenvironment{quote}{%
  723.   \list{}{\rightmargin\leftmargin}\item[]%
  724. }{%
  725.   \endlist
  726. }
  727. \let\endquote=\endlist % for efficiency
  728. \def\trivlist{\parsep\parskip\@nmbrlistfalse
  729.   \@trivlist \labelwidth\z@ \leftmargin\z@
  730.   \itemindent\z@
  731.   \let\@itemlabel\@empty
  732.   \def\makelabel##1{\upshape##1}}
  733. \renewenvironment{enumerate}{%
  734.   \ifnum \@enumdepth >3 \@toodeep\else
  735.       \advance\@enumdepth \@ne
  736.       \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
  737.       {\csname label\@enumctr\endcsname}{\usecounter
  738.         {\@enumctr}\def\makelabel##1{\hss\llap{\upshape##1}}}\fi
  739. }{%
  740.   \endlist
  741. }
  742. \let\endenumerate=\endlist % for efficiency
  743. \renewenvironment{itemize}{%
  744.   \ifnum\@itemdepth>3 \@toodeep
  745.   \else \advance\@itemdepth\@ne
  746.     \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  747.     \list{\csname\@itemitem\endcsname}%
  748.       {\def\makelabel##1{\hss\llap{\upshape##1}}}%
  749.   \fi
  750. }{%
  751.   \endlist
  752. }
  753. \let\enditemize=\endlist % for efficiency
  754. \newcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1:}
  755. \newenvironment{description}{\list{}{%
  756.   \advance\leftmargini6\p@ \itemindent-12\p@
  757.   \labelwidth\z@ \let\makelabel\descriptionlabel}%
  758. }{
  759.   \endlist
  760. }
  761. \let\enddescription=\endlist % for efficiency
  762. \let\upn=\textup
  763. \AtBeginDocument{%
  764.   \settowidth\leftmargini{\labelenumi\hskip\labelsep}%
  765.   \advance\leftmargini by \normalparindent
  766.   \settowidth\leftmarginii{\labelenumii\hskip\labelsep}%
  767.   \advance\leftmarginii by 6pt
  768.   \settowidth\leftmarginiii{\labelenumiii\hskip\labelsep}%
  769.   \advance\leftmarginiii by 6pt
  770.   \settowidth\leftmarginiv{\labelenumiv\hskip\labelsep}%
  771.   \advance\leftmarginiv by 10pt
  772.   \leftmarginv=10pt
  773.   \leftmarginvi=10pt
  774.   \leftmargin=\leftmargini
  775.   \labelsep=5pt
  776.   \labelwidth=\leftmargini \advance\labelwidth-\labelsep
  777.   \@listi}
  778. \newskip\listisep
  779. \listisep\smallskipamount
  780. \def\@listI{\leftmargin\leftmargini \parsep\z@skip
  781.   \topsep\listisep \itemsep\z@skip
  782.   \listparindent\normalparindent}
  783. \let\@listi\@listI
  784. \def\@listii{\leftmargin\leftmarginii
  785.   \labelwidth\leftmarginii \advance\labelwidth-\labelsep
  786.   \topsep\z@skip \parsep\z@skip \partopsep\z@skip \itemsep\z@skip}
  787. \def\@listiii{\leftmargin\leftmarginiii
  788.   \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
  789. \def\@listiv{\leftmargin\leftmarginiv
  790.   \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
  791. \def\@listv{\leftmargin\leftmarginv
  792.   \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
  793. \def\@listvi{\leftmargin\leftmarginvi
  794.   \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
  795. \def\@startsection#1#2#3#4#5#6{%
  796.  \if@noskipsec \leavevmode \fi
  797.  \par \@tempskipa #4\relax
  798.  \@afterindenttrue
  799.  \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi
  800.  \if@nobreak \everypar{}\else
  801.      \addpenalty\@secpenalty\addvspace\@tempskipa\fi
  802.  \@ifstar{\@dblarg{\@sect{#1}{\@m}{#3}{#4}{#5}{#6}}}%
  803.          {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
  804. }
  805. \def\@secnumfont{\mdseries}
  806. \def\@sect#1#2#3#4#5#6[#7]#8{%
  807.   \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
  808.   \ifnum #2>\c@secnumdepth \let\@secnumber\@empty
  809.   \else \@xp\let\@xp\@secnumber\csname the#1\endcsname\fi
  810.  \ifnum #2>\c@secnumdepth
  811.    \let\@svsec\@empty
  812.  \else
  813.     \refstepcounter{#1}%
  814.     \edef\@svsec{\ifnum#2<\@m
  815.        \@ifundefined{#1name}{}{%
  816.          \ignorespaces\csname #1name\endcsname\space}\fi
  817.        \@nx\textup{%
  818.       \@nx\@secnumfont
  819.          \csname the#1\endcsname.}\enspace
  820.     }%
  821.   \fi
  822.   \@tempskipa #5\relax
  823.   \ifdim \@tempskipa>\z@ % then this is not a run-in section heading
  824.     \begingroup #6\relax
  825.     \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty\@M #8\par}%
  826.     \endgroup
  827.     \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
  828.   \else
  829.   \def\@svsechd{#6\hskip #3\@svsec
  830.     \@ifnotempty{#8}{\ignorespaces#8\unskip
  831.        \@addpunct.}%
  832.     \ifnum#2>\@m \else \@tocwrite{#1}{#8}\fi
  833.   }%
  834.   \fi
  835.   \global\@nobreaktrue
  836.   \@xsect{#5}}
  837. \let\@ssect\relax
  838. \newcounter{part}
  839. \newcounter{section}
  840. \newcounter{subsection}[section]
  841. \newcounter{subsubsection}[subsection]
  842. \newcounter{paragraph}[subsubsection]
  843. \renewcommand\thepart          {\arabic{part}}
  844. \renewcommand\thesection       {\arabic{section}}
  845. \renewcommand\thesubsection    {\thesection.\arabic{subsection}}
  846. \renewcommand\thesubsubsection {\thesubsection .\arabic{subsubsection}}
  847. \renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
  848. \setcounter{secnumdepth}{3}
  849. \def\partname{Part}
  850. \def\part{\@startsection{part}{0}%
  851.   \z@{\linespacing\@plus\linespacing}{.5\linespacing}%
  852.   {\normalfont\bfseries\raggedright}}
  853. \def\specialsection{\@startsection{section}{1}%
  854.   \z@{\linespacing\@plus\linespacing}{.5\linespacing}%
  855.   {\normalfont\centering}}
  856. \def\section{\@startsection{section}{1}%
  857.   \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
  858.   {\normalfont\scshape\centering}}
  859. \def\subsection{\@startsection{subsection}{2}%
  860.   \z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
  861.   {\normalfont\bfseries}}
  862. \def\subsubsection{\@startsection{subsubsection}{3}%
  863.   \z@{.5\linespacing\@plus.7\linespacing}{-.5em}%
  864.   {\normalfont\itshape}}
  865. \def\paragraph{\@startsection{paragraph}{4}%
  866.   \z@\z@{-\fontdimen2\font}%
  867.   \normalfont}
  868. \def\subparagraph{\@startsection{subparagraph}{5}%
  869.   \z@\z@{-\fontdimen2\font}%
  870.   \normalfont}
  871. \def\appendix{\par\c@section\z@ \c@subsection\z@
  872.    \let\sectionname\appendixname
  873.    \def\thesection{\@Alph\c@section}}
  874. \def\appendixname{Appendix}
  875. \def\@Roman#1{\@xp\@slowromancap
  876.   \romannumeral#1@}%
  877. \def\@slowromancap#1{\ifx @#1% then terminate
  878.   \else
  879.     \if i#1I\else\if v#1V\else\if x#1X\else\if l#1L\else\if
  880.     c#1C\else\if m#1M\else#1\fi\fi\fi\fi\fi\fi
  881.     \@xp\@slowromancap
  882.   \fi
  883. }
  884. \newcommand{\@pnumwidth}{1.6em}
  885. \newcommand{\@tocrmarg}{2.6em}
  886. \setcounter{tocdepth}{2}
  887. \def\@starttoc#1#2{\begingroup
  888.   \par\removelastskip\vskip\z@skip
  889.   \@startsection{}\@M\z@{\linespacing\@plus\linespacing}%
  890.     {.5\linespacing}{\centering\scshape}{#2}%
  891.   \ifx\contentsname#2%
  892.   \else \addcontentsline{toc}{section}{#2}\fi
  893.   \makeatletter
  894.   \@input{\jobname.#1}%
  895.   \if@filesw
  896.     \@xp\newwrite\csname tf@#1\endcsname
  897.     \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
  898.   \fi
  899.   \global\@nobreakfalse \endgroup
  900.   \addvspace{32\p@\@plus14\p@}%
  901.   \let\tableofcontents\relax
  902. }
  903. \def\contentsname{Contents}
  904. \def\listfigurename{List of Figures}
  905. \def\listtablename{List of Tables}
  906. \def\tableofcontents{\@starttoc{toc}\contentsname}
  907. \def\listoffigures{\@starttoc{lof}\listfigurename}
  908. \def\listoftables{\@starttoc{lot}\listtablename}
  909. \AtBeginDocument{%
  910.   \@for\@tempa:=-1,0,1,2,3\do{%
  911.     \@ifundefined{r@tocindent\@tempa}{%
  912.       \@xp\gdef\csname r@tocindent\@tempa\endcsname{0pt}}{}%
  913.   }%
  914. }
  915. \def\@writetocindents{%
  916.   \begingroup
  917.   \@for\@tempa:=-1,0,1,2,3\do{%
  918.     \immediate\write\@auxout{%
  919.       \string\newlabel{tocindent\@tempa}{%
  920.         \csname r@tocindent\@tempa\endcsname}}%
  921.   }%
  922.   \endgroup}
  923. \AtEndDocument{\@writetocindents}
  924.  
  925. \let\indentlabel\@empty
  926. \def\@tochangmeasure#1{\sbox\z@{#1}%
  927.   \ifdim\wd\z@>\csname r@tocindent\@toclevel\endcsname\relax
  928.     \@xp\xdef\csname r@tocindent\@toclevel\endcsname{\the\wd\z@}%
  929.   \fi
  930. }
  931. \def\@toclevel{0}
  932. \def\@tocline#1#2#3#4#5#6#7{\relax
  933.   \ifnum #1>\c@tocdepth % then omit
  934.   \else
  935.     \par \addpenalty\@secpenalty\addvspace{#2}%
  936.     \begingroup \hyphenpenalty\@M
  937.     \@ifempty{#4}{%
  938.       \@tempdima\csname r@tocindent\number#1\endcsname\relax
  939.     }{%
  940.       \@tempdima#4\relax
  941.     }%
  942.     \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
  943.     \rightskip\@pnumwidth plus1em \parfillskip-\@pnumwidth
  944.     #5\leavevmode\hskip-\@tempdima #6\relax
  945.     \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
  946.     \nobreak
  947.     \endgroup
  948.   \fi}
  949. \def\@tocpagenum#1{\hss{\mdseries #1}}
  950. \def\@tocwrite#1{\@xp\@tocwriteb\csname toc#1\endcsname{#1}}
  951. \def\@tocwriteb#1#2#3{%
  952.   \begingroup
  953.     \def\@tocline##1##2##3##4##5##6{%
  954.       \ifnum##1>\c@tocdepth
  955.       \else \sbox\z@{##5\let\indentlabel\@tochangmeasure##6}\fi}%
  956.     \csname l@#2\endcsname{#1{\csname#2name\endcsname}{\@secnumber}{}}%
  957.   \endgroup
  958.   \addcontentsline{toc}{#2}%
  959.     {\protect#1{\csname#2name\endcsname}{\@secnumber}{#3}}}
  960. \def\l@section{\@tocline{1}{0pt}{1pc}{}{}}
  961. \newcommand{\tocsection}[3]{%
  962.   \indentlabel{\@ifnotempty{#2}{\ignorespaces#1 #2.\quad}}#3}
  963. \def\l@subsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
  964. \let\tocsubsection\tocsection
  965. \def\l@subsubsection{\@tocline{3}{0pt}{1pc}{7pc}{}}
  966. \let\tocsubsubsection\tocsection
  967. \def\l@part{\@tocline{-1}{12pt plus2pt}{0pt}{}{\bfseries}}
  968. \let\tocpart\tocsection
  969. \def\l@chapter{\@tocline{0}{8pt plus1pt}{0pt}{}{}}
  970. \let\tocchapter\tocsection
  971. \let\tocappendix\tocchapter
  972. \def\l@figure{\@tocline{0}{3pt plus2pt}{0pt}{}{}}
  973. \let\l@table=\l@figure
  974. \def\refname{References}
  975. \def\bibname{Bibliography}
  976. \def\bibliographystyle#1{%
  977.    \if@filesw\immediate\write\@auxout
  978.     {\string\bibstyle{#1}}\fi
  979.         \def\@tempa{#1}%
  980.         \def\@tempb{amsplain}%
  981.         \def\@tempc{}%
  982.         \ifx\@tempa\@tempb
  983.                 \def\@biblabel##1{##1.}%
  984.                 \def\bibsetup{}%
  985.         \else
  986.                 \def\bibsetup{\labelsep6\p@}%
  987.         \ifx\@tempa\@tempc
  988.                 \def\@biblabel##1{}%
  989.                 \def\bibsetup{\labelwidth\z@ \leftmargin24\p@
  990.                 \itemindent-24\p@
  991.                           \labelsep\z@ }%
  992.         \fi
  993. \fi}
  994. \newenvironment{thebibliography}[1]{%
  995.   \@xp\section\@xp*\@xp{\refname}%
  996.   \normalfont\footnotesize\labelsep .5em\relax
  997.   \renewcommand\theenumiv{\arabic{enumiv}}\let\p@enumiv\@empty
  998.   \list{\@biblabel{\theenumiv}}{\settowidth\labelwidth{\@biblabel{#1}}%
  999.     \leftmargin\labelwidth \advance\leftmargin\labelsep
  1000.     \usecounter{enumiv}}%
  1001.   \sloppy \clubpenalty\@M \widowpenalty\clubpenalty
  1002.   \sfcode`\.=\@m
  1003. }{%
  1004.   \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
  1005.   \endlist
  1006. }
  1007. \def\bysame{\leavevmode\hbox to3em{\hrulefill}\thinspace}
  1008. \def\newblock{}
  1009. \newcommand\MR[1]{\relax\ifhmode\unskip\spacefactor3000 \space\fi
  1010.   \def\@tempa##1:##2:##3\@nil{%
  1011.     \ifx @##2\@empty##1\else\textbf{##1:}##2\fi}%
  1012.   \MRhref{#1}{MR \@tempa#1:@:\@nil}}
  1013. \newcommand\URL{\begingroup
  1014.   \def\@sverb##1{%
  1015.     \def\@tempa####1##1{\@URL{####1}\egroup\endgroup}%
  1016.     \@tempa}%
  1017.   \verb}
  1018. \let\URLhref\@gobble
  1019. \def\@URL#1{\URLhref{#1}#1}
  1020. \newif\if@restonecol
  1021. \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
  1022.   \columnseprule\z@ \columnsep 35\p@
  1023.   \twocolumn[\@xp\section\@xp*\@xp{\indexname}]%
  1024.   \thispagestyle{plain}%
  1025.   \let\item\@idxitem
  1026.   \parindent\z@  \parskip\z@\@plus.3\p@\relax
  1027.   \footnotesize}
  1028. \def\indexname{Index}
  1029. \def\@idxitem{\par\hangindent 2em}
  1030. \def\subitem{\par\hangindent 2em\hspace*{1em}}
  1031. \def\subsubitem{\par\hangindent 3em\hspace*{2em}}
  1032. \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
  1033. \def\indexspace{\par\bigskip}
  1034. \def\footnoterule{\kern-.4\p@
  1035.         \hrule\@width 5pc\kern11\p@\kern-\footnotesep}
  1036. \def\@makefnmark{\hbox{$\m@th^{\@thefnmark}$}}
  1037. \def\@makefntext{\indent\@makefnmark}
  1038. \long\def\@footnotetext#1{\insert\footins{%
  1039.   \normalfont\footnotesize
  1040.   \interlinepenalty\interfootnotelinepenalty
  1041.   \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
  1042.   \floatingpenalty\@MM \hsize\columnwidth
  1043.   \@parboxrestore \parindent\normalparindent \sloppy
  1044.   \edef\@currentlabel{\p@footnote\@thefnmark}%
  1045.   \@makefntext{\rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
  1046. \hfuzz=1pt \vfuzz=\hfuzz
  1047. \def\sloppy{\tolerance9999 \emergencystretch 3em\relax}
  1048. \setcounter{topnumber}{4}
  1049. \setcounter{bottomnumber}{4}
  1050. \setcounter{totalnumber}{4}
  1051. \setcounter{dbltopnumber}{4}
  1052. \renewcommand{\topfraction}{.97}
  1053. \renewcommand{\bottomfraction}{.97}
  1054. \renewcommand{\textfraction}{.03}
  1055. \renewcommand{\floatpagefraction}{.9}
  1056. \renewcommand{\dbltopfraction}{.97}
  1057. \renewcommand{\dblfloatpagefraction}{.9}
  1058. \setlength{\floatsep}{12pt plus 6pt minus 4pt}
  1059. \setlength{\textfloatsep}{15pt plus 8pt minus 5pt}
  1060. \setlength{\intextsep}{12pt plus 6pt minus 4pt}
  1061. \setlength{\dblfloatsep}{12pt plus 6pt minus 4pt}
  1062. \setlength{\dbltextfloatsep}{15pt plus 8pt minus 5pt}
  1063. \setlength{\@fptop}{0pt}% removed ``plus 1fil''
  1064. \setlength{\@fpsep}{8pt}% removed ``plus 2fil''
  1065. \setlength{\@fpbot}{0pt plus 1fil}
  1066. \setlength{\@dblfptop}{0pt}% removed ``plus 1fil''
  1067. \setlength{\@dblfpsep}{8pt}% removed ``plus 2fil''
  1068. \setlength{\@dblfpbot}{0pt plus 1fil}
  1069. \newcommand{\fps@figure}{tbp}
  1070. \newcommand{\fps@table}{tbp}
  1071. \newcounter{figure}
  1072. \def\@captionheadfont{\scshape}
  1073. \def\@captionfont{\normalfont}
  1074. \def\ftype@figure{1}
  1075. \def\ext@figure{lof}
  1076. \def\fnum@figure{\figurename\ \thefigure}
  1077. \def\figurename{Figure}
  1078. \newenvironment{figure}{%
  1079.   \@float{figure}%
  1080. }{%
  1081.   \end@float
  1082. }
  1083. \newcounter{table}
  1084. \def\ftype@table{2}
  1085. \def\ext@table{lot}
  1086. \def\fnum@table{\tablename\ \thetable}
  1087. \def\tablename{Table}
  1088. \newenvironment{table}{%
  1089.   \@float{table}%
  1090. }{%
  1091.   \end@float
  1092. }
  1093. \def\@floatboxreset{\global\@minipagefalse \centering}
  1094. \long\def\@makecaption#1#2{%
  1095.   \setbox\@tempboxa\vbox{\color@setgroup
  1096.     \advance\hsize-2\captionindent\noindent
  1097.     \@captionfont\@captionheadfont#1\@xp\@ifnotempty\@xp
  1098.         {\@cdr#2\@nil}{.\@captionfont\upshape\enspace#2}%
  1099.     \unskip\kern-2\captionindent\par
  1100.     \global\setbox\@ne\lastbox\color@endgroup}%
  1101.   \ifhbox\@ne % the normal case
  1102.     \setbox\@ne\hbox{\unhbox\@ne\unskip\unskip\unpenalty\unkern}%
  1103.   \fi
  1104.   \ifdim\wd\@tempboxa=\z@ % this means caption will fit on one line
  1105.     \setbox\@ne\hbox to\columnwidth{\hss\kern-2\captionindent\box\@ne\hss}%
  1106.   \else % tempboxa contained more than one line
  1107.     \setbox\@ne\vbox{\unvbox\@tempboxa\parskip\z@skip
  1108.         \noindent\unhbox\@ne\advance\hsize-2\captionindent\par}%
  1109. \fi
  1110.   \ifnum\@tempcnta<64 % if the float IS a figure...
  1111.     \addvspace\abovecaptionskip
  1112.     \moveright\captionindent\box\@ne
  1113.   \else % if the float IS NOT a figure...
  1114.     \moveright\captionindent\box\@ne
  1115.     \nobreak
  1116.     \vskip\belowcaptionskip
  1117.   \fi
  1118. \relax
  1119. }
  1120. \newskip\abovecaptionskip \abovecaptionskip=12pt \relax
  1121. \newskip\belowcaptionskip \belowcaptionskip=12pt \relax
  1122. \newdimen\captionindent \captionindent=3pc
  1123. \RequirePackage{amsthm}[1996/09/24]
  1124. \def\@swapped#1#2{#2%
  1125.   \@ifnotempty{#1}{\@addpunct{.}\quad#1\unskip}}
  1126. \def\thmhead@plain#1#2#3{%
  1127.   \thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}%
  1128.   \thmnote{ \textmd{\upshape(#3)}}}
  1129. \def\swappedhead@plain#1#2#3{%
  1130.   \thmnumber{\@upn{#2}}\thmname{\@ifnotempty{#2}{. }#1}%
  1131.   \thmnote{ \textmd{\upshape(#3)}}}
  1132. \def\th@plain{%
  1133.   \let\thmhead\thmhead@plain \let\swappedhead\swappedhead@plain
  1134.   \thm@preskip.5\baselineskip\@plus.2\baselineskip
  1135.                                     \@minus.2\baselineskip
  1136.   \thm@postskip\thm@preskip
  1137.   \itshape
  1138. }
  1139. \def\th@definition{%
  1140.   \let\thmhead\thmhead@plain \let\swappedhead\swappedhead@plain
  1141.   \thm@preskip.5\baselineskip\@plus.2\baselineskip
  1142.                                     \@minus.2\baselineskip
  1143.   \thm@postskip\thm@preskip
  1144.   \upshape
  1145. }
  1146. \def\th@remark{%
  1147.   \thm@headfont{\itshape}% heading font bold
  1148.   \let\thmhead\thmhead@plain \let\swappedhead\swappedhead@plain
  1149.   \thm@preskip.5\baselineskip\@plus.2\baselineskip
  1150.                                     \@minus.2\baselineskip
  1151.   \thm@postskip\thm@preskip
  1152.   \upshape
  1153. }
  1154. \if@compatibility
  1155. \let\@newpf\proof \let\proof\relax \let\endproof\relax
  1156. \newenvironment{pf}{\@newpf[\proofname]}{\qed\endtrivlist}
  1157. \newenvironment{pf*}[1]{\@newpf[#1]}{\qed\endtrivlist}
  1158. \fi
  1159. \def\nonbreakingspace{\unskip\nobreak\ \ignorespaces}
  1160. \def~{\protect\nonbreakingspace}
  1161. \def\@biblabel#1{\@ifnotempty{#1}{[#1]}}
  1162. \def\@cite#1#2{{%
  1163.   \m@th\upshape\mdseries[{#1\if@tempswa, #2\fi}]}}
  1164. \@ifundefined{cite }{%
  1165.   \expandafter\let\csname cite \endcsname\cite
  1166.   \edef\cite{\@nx\protect\@xp\@nx\csname cite \endcsname}%
  1167. }{}
  1168. \def\fullwidthdisplay{\displayindent\z@ \displaywidth\columnwidth}
  1169. \edef\@tempa{\noexpand\fullwidthdisplay\the\everydisplay}
  1170. \everydisplay\expandafter{\@tempa}
  1171. \newcommand\seename{see also}%
  1172. \newcommand\see[2]{{\em \seename\/} #1}%
  1173. \newcommand\printindex{\@input{\jobname.ind}}%
  1174. \DeclareRobustCommand\textprime{\leavevmode
  1175.   \raise.8ex\hbox{\check@mathfonts\the\scriptfont2 \char48 }}
  1176. \hyphenation{acad-e-my acad-e-mies af-ter-thought anom-aly anom-alies
  1177. an-ti-deriv-a-tive an-tin-o-my an-tin-o-mies apoth-e-o-ses
  1178. apoth-e-o-sis ap-pen-dix ar-che-typ-al as-sign-a-ble as-sist-ant-ship
  1179. as-ymp-tot-ic asyn-chro-nous at-trib-uted at-trib-ut-able bank-rupt
  1180. bank-rupt-cy bi-dif-fer-en-tial blue-print busier busiest
  1181. cat-a-stroph-ic cat-a-stroph-i-cally con-gress cross-hatched data-base
  1182. de-fin-i-tive de-riv-a-tive dis-trib-ute dri-ver dri-vers eco-nom-ics
  1183. econ-o-mist elit-ist equi-vari-ant ex-quis-ite ex-tra-or-di-nary
  1184. flow-chart for-mi-da-ble forth-right friv-o-lous ge-o-des-ic
  1185. ge-o-det-ic geo-met-ric griev-ance griev-ous griev-ous-ly
  1186. hexa-dec-i-mal ho-lo-no-my ho-mo-thetic ideals idio-syn-crasy
  1187. in-fin-ite-ly in-fin-i-tes-i-mal ir-rev-o-ca-ble key-stroke
  1188. lam-en-ta-ble light-weight mal-a-prop-ism man-u-script mar-gin-al
  1189. meta-bol-ic me-tab-o-lism meta-lan-guage me-trop-o-lis
  1190. met-ro-pol-i-tan mi-nut-est mol-e-cule mono-chrome mono-pole
  1191. mo-nop-oly mono-spline mo-not-o-nous mul-ti-fac-eted mul-ti-plic-able
  1192. non-euclid-ean non-iso-mor-phic non-smooth par-a-digm par-a-bol-ic
  1193. pa-rab-o-loid pa-ram-e-trize para-mount pen-ta-gon phe-nom-e-non
  1194. post-script pre-am-ble pro-ce-dur-al pro-hib-i-tive pro-hib-i-tive-ly
  1195. pseu-do-dif-fer-en-tial pseu-do-fi-nite pseu-do-nym qua-drat-ic
  1196. quad-ra-ture qua-si-smooth qua-si-sta-tion-ary qua-si-tri-an-gu-lar
  1197. quin-tes-sence quin-tes-sen-tial re-arrange-ment rec-tan-gle
  1198. ret-ri-bu-tion retro-fit retro-fit-ted right-eous right-eous-ness
  1199. ro-bot ro-bot-ics sched-ul-ing se-mes-ter semi-def-i-nite
  1200. semi-ho-mo-thet-ic set-up se-vere-ly side-step sov-er-eign spe-cious
  1201. spher-oid spher-oid-al star-tling star-tling-ly sta-tis-tics
  1202. sto-chas-tic straight-est strange-ness strat-a-gem strong-hold
  1203. sum-ma-ble symp-to-matic syn-chro-nous topo-graph-i-cal tra-vers-a-ble
  1204. tra-ver-sal tra-ver-sals treach-ery turn-around un-at-tached
  1205. un-err-ing-ly white-space wide-spread wing-spread wretch-ed
  1206. wretch-ed-ly Eng-lish Euler-ian Feb-ru-ary Gauss-ian
  1207. Hamil-ton-ian Her-mit-ian Jan-u-ary Japan-ese Kor-te-weg
  1208. Le-gendre Mar-kov-ian Noe-ther-ian No-vem-ber Rie-mann-ian Sep-tem-ber}
  1209. \def\calclayout{\advance\textheight -\headheight
  1210.   \advance\textheight -\headsep
  1211.   \oddsidemargin\paperwidth
  1212.   \advance\oddsidemargin -\textwidth
  1213.   \divide\oddsidemargin\tw@
  1214.   \ifdim\oddsidemargin<.5truein \oddsidemargin.5truein \fi
  1215.   \advance\oddsidemargin -1truein
  1216.   \evensidemargin\oddsidemargin
  1217.   \topmargin\paperheight \advance\topmargin -\textheight
  1218.   \advance\topmargin -\headheight \advance\topmargin -\headsep
  1219.   \divide\topmargin\tw@
  1220.   \ifdim\topmargin<.5truein \topmargin.5truein \fi
  1221.   \advance\topmargin -1truein\relax
  1222. }
  1223. \calclayout % initialize
  1224. \pagenumbering{arabic}
  1225. \pagestyle{headings}
  1226. \thispagestyle{plain}
  1227. \if@compatibility \else\endinput\fi
  1228. \def\tiny{\Tiny}
  1229. \def\defaultfont{\normalfont}
  1230. \def\rom{\textup}
  1231. \endinput
  1232. %%
  1233. %% End of file `amsart.cls'.
  1234.